╘HE DEFAULT MEMORY LOCATION (BYTE) THAT STARTS ┬┴╙╔├ PROGRAMS IS 2049, BUT THIS CAN BE CHANGED BY CHANGING THE POINTER 43/44 CONTENT. ╙IMILARLY THE POINTER 55/56 CONTAINS THE HIGHEST LOCATION A ┬┴╙╔├ PROGRAM IS PERMITTED TO USE, AND IT OFTEN IS CHANGED BY THE USER TO PROTECT A PROGRAM AND/OR DATA THAT ARE LOCATED AT HIGHER LOCATIONS.
╘YPE IN THIS PROGRAM FOR EXAMPLE, CALL IT PROGRAM 1, AND THEN TYPE RUN:
10?"╬O.1":G╧15
11?"╬OT TO HERE 11
15:?"╘HIS IS 15
╫ITHOUT LINE NUMBERS (IN DIRECT MODE) TYPE IN THIS PROGRAM, CALL IT 101; IT IS USED TO SEE WHERE ┬┴╙╔├ DEPOSITS WHAT. ╫RITE DOWN THE RESULTS, YOU WILL NEED THEM LATER.
F╧I=43TO56:?I;P┼(I):N┼
╘O SEE WHERE THE POINTERS POINT TO ENTER THIS PROGRAM, CALL IT PROGRAM 102:
F╧I=43TO55STEP2:?I;I+1;P┼(I)+256*P┼(I+1):N┼
╨OINTER 43/44, P┼(43)+256*P┼(44) IS THE START LOCATION (BYTE) OF THE PROGRAM AREA, POINTER 45/46 IS THE START OF THE VARIABLES AREA, POINTER 47/48 IS THE START OF THE ARRAY AREA, POINTER 49/50 IS THE START OF FREE ╥┴═ (╥ANDOM ┴CCESS ═EMORY), POINTER 51/52 POINTS TO THE BOTTOM OF THE AREA SET ASIDE FOR STRING STORAGE, POINTER 53/54 IS A TEMPORARY POINTER FOR STRING LOCATION, AND POINTER 55/56 SHOWS ONE ABOVE THE HIGHEST BYTE THAT ┬┴╙╔├ WILL USE.
═╧╥┼ ╘╚┴╬ ╧╬┼ ┬┴╙╔├ ╨╥╧╟╥┴═╙:
╔T IS POSSIBLE TO LOAD MORE THAN ONE ┬┴╙╔├ PROGRAMS WITHIN THE SPACE 2049 TO 40959, BUT BE CAREFUL ABOUT LEAVING ENOUGH SPACE BETWEEN THEM FOR ┬┴╙╔├ TO STORE ALL CONSTANTS, VARIABLES, ARRAYS AND STRINGS WHILE THE PROGRAM IS RUNNING.
╔F THESE POINTERS ARE TO BE CHANGED THEN IT MUST BE DONE BEFORE ENTERING THE PROGRAM. ╒NLESS YOU HAVE DONE SO ALREADY AFTER PROGRAM 1 (ABOVE) WAS LOADED, USE PROGRAM 101 TO SEE, AND WRITE DOWN, THE CONTENTS OF BYTES 43 TO 56.
╞OR EXAMPLE, IF NOT ALREADY DONE SO, TYPE IN PROGRAM 1 (SEE ABOVE) NORMALLY, WITH DEFAULT POINTERS. ╘HEN CHANGE THE BYTE 44 TO WHEREVER YOU WANT PROGRAM 2 TO START, AND ADD NEW FOR ┬┴╙╔├ TO CHANGE POINTERS. ╞OR THIS EXAMPLE:
P╧44,100:NEW
╘YPE IN PROGRAM 102 TO SEE THE NEW POINTERS, THEN TYPE IN THIS PROGRAM 2, FOR EXAMPLE:
20?"╬O.2":G╧25
21?"╬OT TO HERE 21
25:?"╘HIS IS 25
╥UN PROGRAM 2 THEN TYPE IN PROGRAM 101 AND WRITE DOWN THE RESULTS FOR LATER USE.
╘O GET BACK TO PROGRAM 1 CHANGE NEARLY ALL BYTES 43 TO 56 TO WHERE THEY WERE AFTER RUNNING PROGRAM 1, EXCEPT THAT YOU TYPE 100 (THE START OF PROGRAM 2) INSTEAD OF 160 TO PREVENT PROGRAM 1 INTERFERING WITH PROGRAM 2.
╘O GET BACK TO PROGRAM 2, AGAIN CHANGE BYTES 43 TO 56 TO WHERE THEY WERE AFTER RUNNING PROGRAM 2.
├╚┴╬╟╔╬╟ ╠╔╬┼ ╬╒═┬┼╥╙:
╚ERE, FOR EXAMPLE, IS A PROGRAM TO BE USED AS ╬O.2, IF THE LINE NUMBERS ARE TO BE CHANGED IN ╬O.1:
┴FTER SWITCHING THE COMPUTER OFF AND BACK ON TO START AGAIN FROM THE VERY BEGINNING WITH DEFAULT VALUES, TYPE IN OR LOAD PROGRAM ╬O. 1 NORMALLY, THEN TYPE, FOR THIS EXAMPLE,
P╧44,100:NEW
╘YPE IN, OR LOAD, THE RENUMBER PROGRAM, BELOW, AS PROGRAM ╬O.2 AND RUN IT. ┘OU MAY WISH, AS AN EXAMPLE, TO CHANGE THE NEW LINE NUMBERS OF PROGRAM 1 TO START WITH 1000, AND HAVE EQUAL INTERVALS OF 10. ╬OTE THAT PRINTERS DIFFER; THIS WORKS FOR THE PRINTER ╔ USE. ┴T THE END OF THE RENUMBERING A LIST WILL BE SHOWN ON THE SCREEN, AND ALSO PRINTED IF THE PRINTER IS ON, SHOWING NEW AND OLD LINE NUMBERS. ╘HIS IS IMPORTANT BECAUSE ALL JUMPS, IF ANY, MUST BE CHANGED MANUALLY TO NEW DESTINATION LINE NUMBERS. ┴S A HELP IN THIS REGARD ╔ USUALLY PUT A COLON IMMEDIATELY AFTER THE LINE NUMBER IN EACH DESTINATION LINE; OFTEN OTHER ITEMS MUST BE CHANGED TOO.
43000 REM "RENUMBER BY ╩OE ╤UITTNER
43002 CLOSE 5:CLOSE 7:OPEN 5,4,5:OPEN 7,4,7:REM FOR MY PRINTER
43004 ?C╚(14)C╚(144):REM LOWER CASE, BLACK TEXT
43010 F╧I=1TO10
43011 P╥5,C╚(27)C╚(108)C╚(7):REM MY PRINTER'S LEFT MARGIN=7
43012 P╥5,C╚(27)C╚(81)C╚(77): NEXT:REM RIGHT MARGIN=77
43014 DIM C(1000,1):REM NO MORE THAN 1000 LINE NUMBERS
43020 S=2049:REM THIS IS THE STARTING BYTE OF PROGRAM 1
43022 INPUT" ╬EW NUMBER START, INTERVAL";NN,D:NN=NN-D:N=0:REM 1000,10?
43030 :NE=FNC(S):IF NE=0THEN43040:REM NEXT LINE'S STARTING BYTE
43032 LN=FNC(S+2):N=N+1:C(N,0)=LN:REM OLD LINE NUMBER INTO ARRAY
43034 NN=NN+D:P╧S+2,FNA(NN):P╧S+3,FNB(NN) :C(N,1)=NN:REM NEW NUMBER
43036 S=NE:GOTO43030:REM DO THE NEXT LINE
43040 :FOR I=1 TO N:PRINT C(I,1)"WAS"C(I,0):REM TABLE NEW-OLD
43041 P╥7,C(I,1)"WAS"C(I,0)" ";:NEXT:P╥7
43049 END
╔F A PROGRAM DOES NOT START AT 2049, AND SHOULD NOT START AT 2049 WHEN LOADED, THEN SAVE IT AND LOAD IT WITH 8,1 INSTEAD OF JUST 8
SAVE"PROGRAM NAME",8,1 OR SAVE"@0:PROGRAM NAME",8,1
LOAD"PROGRAM NAME",8,1
┴╨╨┼╬─╔╬╟ ┴ 2╬─ ╨╥╧╟╥┴═:
├HECK CAREFULLY FIRST THAT THERE ARE NO DUPLICATIONS. ╧FTEN THE EASIEST WAY IS TO SIMPLY EXTEND PROGRAM 1 BY TYPING PROGRAM 2 INTO THE END OF PROGRAM 1 SO AS TO GET A COMBINED PROGRAM. ╘HEN RUN EITHER FROM THE BEGINNING OF PROGRAM 1, OR FROM WHEREVER PROGRAM 2 STARTS. ┬E CAREFUL TO SAVE EVERYTHING BEFORE RUNNING, IN CASE THE COMPUTER WILL STOP DOING ANYTHING, AND SWITCHING OFF IS THE ONLY WAY TO RESET IT TO NORMAL, LOSING EVERYTHING THAT HAS NOT BEEN SAVED ON DISK OR TAPE.
╔F TYPING PROGRAM 2 INTO THE END OF PROGRAM 1 IS NOT AN OPTION, THEN:
╘YPE IN THE 1ST PROGRAM NORMALLY WITH DEFAULT POINTERS. ╘HEN TYPE
A=P┼(45)+256*P┼(46)-2:?A
╘HIS WILL GIVE YOU THE START BYTE FOR THE RELOCATED NO.2 PROGRAM. ╘HEN
P╧44,INT(A/256): P╧43,A-256*P┼(44):CLR:SYS42291
╬OW TYPE OR LOAD NO.2. ╞INALLY, TO START AT 2049 AND FOR ┬┴╙╔├ TO LINK LINES, TYPE
P╧43,1:P╧44,8:CLR:SYS42291
╠IST FIRST BEFORE CHECKING OR RUNNING TO SEE WHAT YOU'VE GOT, IN CASE THAT YOU MAY HAVE TO START ALL OVER AGAIN, TO CHANGE JUMPS, ETC.